1. Technical Field
The present invention relates to the field of data formatting using markup languages, and more particularly, to a method and apparatus for calendar based call control.
2. Description of the Related Art
The development of the extensible markup language (XML) has provided great flexibility for formatting data for presentation in an interface such as a browser. XML acts as a framework for the structured representation of data and is superior to existing markup languages such as hypertext markup language (HTML). HTML on a high level is essentially a protocol for defining the appearance of text through the use of predefined tags. On the other hand, XML utilizes user-defined tags to define the structure and content of data. Notably, XML allows presentation of formatted data to be independently handled. XML""s superiority can be attributed to its ability to separate form from content and also its capability to easily define the structure and content of any data.
Significant to the development of XML is the development of the open network application programming interface (API) in the area of telephony. In order to remain competitive, future integrated telephone networks will have to offer application developers a set of standard, open APIs so that applications written for compatibility with one vendor""s system can execute in another vendor""s system. In consequence, the cost of applications development can be amortized, reducing the final cost to the customer. Java APIs for Integrated Networks (JAIN) fulfills the requirements of the new open API in the area of telephony. Presently, JAIN includes standard, open published Java APIs for next-generation telephony systems consisting of integrated Internet Protocol (IP) networks, asynchronous transport mode (ATM) networks, PSTN, and wireless networks. The JAIN APIs include interfaces at the protocol level, for different protocols such as Media Gateway Control Protocol (MGCP), Session Initiation Protocol (SIP), and Transactional Capabilities Application Part (TCAP), as well as protocols residing in the higher layers of the telecommunications protocol stack.
JAIN includes a set of integrated network APIs for the Java platform and an environment to build and integrate JAIN components into services or applications that work across PSTN, packet and wireless networks. The JAIN approach integrates wireline, wireless, and packet-based networks by separating service-based logic from network-based logic. FIG. 1 illustrates a conventional JAIN implementation. As shown in FIG. 1, a conventional JAIN implementation can include a protocol layer 102 which can include interfaces to IP, wireline and wireless signaling protocols. Though TCAP (110B) and H.323 (110C) protocols 110 are shown, the protocols supported by the JAIN specification are not limited to those particular protocols and can include, for example, TCAP, ISUP, INAP, MAP, SIP, MGCP, and H.323. Moreover, the JAIN implementation can include an interface to a connectivity management and call control protocol such as JCC110A.
In addition to the protocol layer 102, the conventional JAIN implementation can also include an application layer 104 for handling secure network access and other external services 120. Also, the conventional JAIN implementation can include a service logic layer (service layer) 106 which can include a service creation and carrier grade service logic execution environment (SLEE) 108. Service components 112 are the core JAIN components and can execute in the SLEE 108. More particularly, service components 112 can implement telephony and network services and can be constructed according to a standard component model. Instantiations of service component assemblies execute in coordination with the SLEE 108.
In operation, using information regarding the protocol layer 102 which can be incorporated into the SLEE 108, service components 112 can interact with an underlying protocol stack 110 without having specific knowledge of the protocol stack 110. More importantly, the SLEE 108 can relieve the service components 112 of conventional lifecycle responsibilities by providing portable support for transactions, persistence, load balancing, security, and object and connection instance pooling. In this way, the service components 112 can focus on providing telephony and/or network services. Notably, the SLEE 108 can be communicatively linked directly to client components such as external applications 116, protocol stacks 110 and service components 112.
For example, service components 112 executing at the service logic layer 106 in the SLEE 108 can communicate with protocol stacks 110 in the protocol layer through protocol adapters in the SLEE 108. Protocol adapters typically can include class methods, callbacks, encapsulating interfaces, or event handlers. In many cases, an underlying protocol stack 110 can directly communicate with the SLEE 108 through an event table 114 in the SLEE 108 which can be configured to specifically handle events which are particular to the underlying protocol stack 110. In consequence, the SLEE 108 can recognize those particular events, and upon receipt of such an event from the underlying protocol stack 110, the SLEE 108 can pass the event to a subscribing service component 112. Also, service components 112 can be individually programmed to interact with specific external services 120, such as relational databases and directory services.
Given the apparent advantages of JAIN with it""s set of integrated API for the Java platform, the use of the XML with its structured representation of data can be used to further enhance the ability of advanced intelligent networks (AIN). In calendar based systems, it is often necessary to access telephony related activities. For example, a call could be forwarded to an alternate telephone number listed as a calendar entry. However, entries in existing calendar are usually in free-form text areas which make recognition and identification of the entries difficult, thereby making it impractical to have an existing calendar based call control entries. Hence, what is needed is a more flexible approach for providing calendar based call control.
The invention provides a method and apparatus for an extensible markup language (XML) calendar-telephony interface. The method for calendar based call control, can include the steps of defining an markup language element having a user defined tag that represents a calendar entry. The markup language element can have attributes which can represent call control instructions or information. The attributes can also be formatted using a markup language format that utilizes user defined tags. The call control instruction can be provided to a telephony application upon initiation of a call or by request. A calendar application program can be used for maintaining calendar entries which can be stored in a database and made accessible to the telephony call control application. The elements and/or attributes can be formatted using XML format.
The invention also discloses a method for providing calendar based call control. The method can include the steps of acquiring a called telephone number and a calling telephone number from a telephone network device for an associated telephone call. An identity of a party affiliated with the called telephone number can then be determined and call control information extracted from calendar entry associated with identified person. The calendar entry can be formatted using a markup language that does not have pre-defined tags. Here, the calendar entry can be formatted by utilizing user defined tags. The XML format can be used to format the calendar entries. The extracted control information can subsequently be used to control the disposition of the call. The extracting step can further include the steps of parsing the XML formatted calendar entry to determine a particular call control data in the entries, comparing the determined call control data with the calling telephone number and instructing the telephone network device to route the call to the called number in response to a match resulting from the comparison. The party can be a person, business or organization.
The method can further include the step of instructing the telephone network device to cancel the call to the called number if no match results from the comparison. An aural notification can be utilized to indicate the status of the call. The call control information can include a call rejection, a call forwarding, a call transfer, or call screen instruction. The telephone network device can include a switch, a signaling device, a routing device such as a bridge or router.
The invention also discloses a method for providing calendar based call control which can include the steps of acquiring a called telephone number for a telephone call originating from a calling telephone, providing the acquired telephone number to a telephony application, wherein the telephony application can acquire call control data from a calendar. Responsive to receiving call control data from the telephony application, routing the telephone call originating from the calling telephone based on the received call control data. The call control data can include call rejection data.
The invention further provides a method for calendar based call control which can include the steps of formatting data fields of a calendar entry in an XML format such that the data fields contain call control data. XML formatted call control data can be communicated to a telephony interface based on a call request, the telephony interface causing the XML formatted data to control handling of a telephony call feature.
The invention also discloses a machine readable storage having stored thereon, a computer program having a plurality of code sections, the code sections executable by a machine for causing the machine to perform the steps as previously described.